package com.ymx.darling.cursor;

import com.ymx.darling.transaction.Close;

/**
 * 游标接口
 * @param <T>
 */
public interface Cursor<T> extends Close, Iterable<T> {
    /**
     * 判断游标是否仍然可用
     * @return true 可用 false 不可用
     */
    boolean isOpen();


    /**
     * 用于检查 Cursor 是否已经消费完所有的查询结果<br/>
     * @return 返回值为 true 表示已经消费完所有结果<br/>
     *         返回值为 false 表示还有未消费的结果<br/>
     */
    boolean isConsumed();


    /**
     * 返回游标的索引位置
     * @return 索引位置 第一条记录从0开始
     */
    int getCurrentIndex();
}
